//中间的分类
//1. 应用中间  app.use()
//2. 路由中间  route.use

//3. 错误中间件 参数多了一个  必须放在定义路由后面
// app.use((err, req, res, next) 


const express = require('express');
const app = express();
const fs = require('fs')


//定义路由

app.get('/login', (req, res, ext) => {
    throw new Error('服务器内服错误')
})
app.get('/user', (req, res, next) => {
        // 错误中间件只能捕获到同步的代码错误，异步需要传递参数
        console.log(1);
        fs.readFile('./zks', 'utf-8', function(err, result) {
            if (err != null) {
                next(err)
            } else { res.send(result) }
        })

    })
    //声明全局中间件  错误中间件 注册在路由之后
app.use((err, req, res, next) => {
    console.log('发生错误 ' + err.message);
    res.send(err.message);

})

//启动服务器
app.listen(80, function() {
    console.log('http://127.0.0.1');
})